package com.caiheng.api.entity.estate;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.caiheng.api.entity.event.EventPlanTaskInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 楼栋（1级） + 单元（2级） 对象 estate_build
 *
 * @author ruoyi
 * @date 2023-12-31
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("estate_build")
public class EstateBuild implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     * 物业公司id
     */
    private Integer propertyId;

    /**
     * 小区id
     */
    private Integer estateId;

    /**
     * 楼栋 / 单元 名称
     */
    private String buildName;

    /**
     * 父层级id
     */
    private Integer parentId;

    /**
     * 类型 0 - 楼宇  1 - 其他公共区域
     */
    private Integer buildType;

    /**
     * 等级
     */
    private Integer level;

    /**
     * 排序索引
     */
    private Integer sort;

    /**
     * 状态  0 -不可用 1 - 可用
     */
    private Integer state;

    /**
     *  经度
     */
    private BigDecimal lng;

    /**
     *  纬度
     */
    private BigDecimal lat;



    @TableField(exist = false)
	private String estateName;

	@TableField(exist = false)
	private String propertyName;

    @TableField(exist = false)
    private Integer opState;

    /**
     *  完成人姓名
     */
    @TableField(exist = false)
    private String sysUserName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date handleTime;


    @TableField(exist = false)
    private EventPlanTaskInfo taskInfo;

    /**
     *  当前经纬度距离该设备的距离
     */
    @TableField(exist = false)
    private Double distance;
}
